1. Field of the Invention
The present invention relates to a sound generation assignment device, a music sound generator and a sound generation assignment process program.
2. Description of the Related Art
In a music sound generator such as an electronic music instrument, a plurality of sound generation channels are assigned to a port, and a timbre of music sound is set to each sound generation channel and sounds are produced at the same time. For example, according to the MIDI 1.0 Specification, generators (sound sources) can be assigned to 16 channels at maximum to one port, and music sounds can be produced with 16 kinds of timbres at the same time. Further, in recent years, generators of 32 kinds or 64 kinds of timbres are shared by a plurality of ports, and generators are assigned to a plurality of sound generation channels of each port. For example, melody part, rhythm part, chord part, and bass part as plural parts of a music piece are set to each port as applications of music sound generation, and thereby polyphonic and richly music sounds can be generated. On the other hand, there is a case in which the number of channels to which generators of a part as an arbitrary application are assigned may be in short to music sound data input from a music keyboard or other external MIDI devices. In such a case, sound generation channels of other parts are used temporarily.
However, with regard to musically important parts, for example the melody part, a priority is set for each port so that even if the sound generation channels of other parts are in short, the sound generation channels of the melody part are not be used as the sound generation channels for ones that are temporarily in short. More specifically, in the case where a new sound generation is required to a part having a high priority, and there is no empty sound generation channel in the part, a generator of a sound generation channel currently producing a sound in a part having a low priority is muted and made as an empty sound generation channel, and the empty channel is assigned to a new sound generation to the part having the high priority.
Further, in recent years, a music sound generator is arranged inside of a mobile communication terminal such as a cellular phone, and thereby ringtone melodies (call signals with melodies), game artificial sounds, reproduced sounds of music pieces downloaded from a network and the like are produced. Cellular phones evolve year by year, and accordingly, it is forecasted that in the near future, musical performances at the same level of those in an electronic music instrument will be required to cellular phones.
In an electronic music instrument disclosed in Jpn. Pat. Appln. KOKAI Publication No. 8-202361, it is determined whether or not there is an empty sound generation channel when a sound generation timing comes in. In the case where there is no empty channel, it is determined whether or not there are sound generation channels currently producing sounds in the part from the part having the highest mute priority. Then, in the part where sound generation channels currently producing sounds have been detected, one channel currently producing a sound is selected in accordance with a predetermined condition, the sound generation of the sound generation channel is stopped, and the released sound generation channel is assigned to new key-on information. Further, in the above publication, there is described a configuration that enables to change the mute priority, by a user operation, a command in automatic playing data, an exclusive message of MIDI, and the like. According to this configuration, even if the number of sound generation channels becomes in short, necessary sounds are not deleted.
Furthermore, an assigner of an electronic music instrument is disclosed in Japanese Patent No. 2562260. When playing data for playing one of plural parts is newly input, a sound generation channel to which the new playing data is assigned is selected. At this time, if the sound generation channel to which the new playing data is assigned is in short, a sound generation channel is selected from the sound generation channels to which parts of low priorities are assigned according to priorities of parts stored in a memory. With this configuration, the number of sound generation channels that each part uses is not assigned fixedly to each part. For this reason, the newly input part can obtain the necessary number of sound generation channels, and sounds to be played are not limited, so that it is possible to make music performance expressions richer.
In Jpn. Pat. Appln. KOKAI Publication No. 8-202361 and Japanese Patent No. 2562260, the part whose priority is set low is always sacrificed in the case where, when there is a request for new sound generation to a certain part, the sound generation channel to be used for the sound generation is in short. However, there is a case in which a priority cannot be made to applications set to respective plural ports. For example, recent cellular phones have a function to play a game by use of polyphonic music sounds, and a user may want to receive a call without stopping a game when there is a call signal during playing the game. However, in the case where the priority of the port set for the application of receiving a call signal is low, the call cannot be recognized. On the contrary, in the case where the priority of the port set for the application of playing the game is low, the game is terminated.
Meanwhile, in the electronic music instrument disclosed in Jpn. Pat. Appln. KOKAI Publication No. 8-202361, a plurality of parts or sound generation channels may be assigned to one priority. A sound generation channel to be muted may be selected from the part having the largest number of sound generation channels in a same priority, and sound generation channels of each part may be selected sequentially. However, this configuration is substantially same as a configuration in which a part or a sound generation channel is assigned to one priority. Accordingly, even if a plurality of parts or sound generation channels are assigned to a priority, a part whose priority is set low is always sacrificed.